package com.zp.business.entity.exam.bo;

import com.zp.common.core.entity.BaseEntity;
import com.zp.common.core.validate.AddGroup;
import com.zp.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.List;

/**
 * 检查申请主业务对象
 *
 * @author zhang peng
 * @ date 2024-01-05
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class ExamApplyBo extends BaseEntity {

    /**
     * 主键
     */
//    @NotBlank(message = "主键不能为空", groups = {EditGroup.class})
    private String id;

    /**
     * 就诊记录ID
     */
    private String clinicId;

    /**
     * 申请序号
     */
//    @NotBlank(message = "申请序号不能为空", groups = {AddGroup.class, EditGroup.class})
    private String applyNo;

    /**
     * 病人信息Id
     */
    @NotBlank(message = "病人信息Id不能为空", groups = {AddGroup.class, EditGroup.class})
    private String patientId;

    /**
     * 住院/门诊 字典：clinic_or_visit
     */
    @NotBlank(message = "住院/门诊 字典：cinoroutFlag不能为空", groups = {AddGroup.class, EditGroup.class})
    private String inoroutFlag;

    /**
     * 症状
     */
    private String symptom;

    /**
     * 体征
     */
    private String sign;

    /**
     * 临床诊断
     */
    private String clinicalDiag;

    /**
     * 其他诊断
     */
    private String relevantDiag;

    /**
     * 化验结果
     */
    private String relevantResult;

    /**
     * 确认人
     */
    private String confirmUser;

    /**
     * 取消确认
     */
    private String cancelConfirmUser;

    /**
     * 确认标志
     */
//    @NotBlank(message = "确认标志不能为空", groups = {AddGroup.class, EditGroup.class})
    private String confirmFlag;

    /**
     * 确认时间
     */
    private Date confirmDate;

    /**
     * 收费标志
     */
//    @NotBlank(message = "收费标志不能为空", groups = {AddGroup.class, EditGroup.class})
    private String chargeFlag;

    /**
     * 开单科室
     */
    private String applyUser;

    private String applyDept;

    /**
     * 执行科室
     */
    private String implementDept;

    /**
     * 是否加急
     */
    private String isUrgent;

    /**
     * 机构ID
     */
//    @NotBlank(message = "机构ID不能为空", groups = {AddGroup.class, EditGroup.class})
    private String orgId;

    /**
     * 备注信息
     */
    private String remarks;

    /**
     * 住院id
     */
    private String visitId;

    /**
     * clinic_orders主鍵
     */
    private String clinicOrdersId;

    /**
     * 是否体检
     */
    private String isPhy;

    /**
     * 检查类别
     */
    private String examType;

    /**
     * 主诉
     */
    private String mainSuit;

    /**
     * 申请注意事项
     */
    private String matter;

    /**
     * 记录
     */
    private String notes;

    /**
     * 取消确认状态
     */
    private String confirmCancelFlag;

    /**
     * pacs确认字段
     */
    private String pacsFlag;

    /**
     * 真实开单时间
     */
    private Date realDate;

    /**
     * 检查项目明细数组
     */
    private List<ExamItemBo> examItemBoList;


    private String applyDeptName;

    private String applyUserName;

    private String name;
    private String clinicNo;
    private String hospitalNo;

    private List<String> ids;

}
